iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
Web 3

從 區塊鏈 到 去中心化應用程式(DApp)系列 第 4

區塊鏈基礎 : 共識機制

  • 分享至 

  • xImage
  •  

共識機制

我想目前整體已經能夠理解區塊鏈如何運行的

為何需要區塊鏈的共識機制 本身的作用在於

確保在分散式網絡中所有參與者
數據的一致性達成一致意見的機制

對於常見的機制 主要可以介紹

  1. 工作證明 (Proof of Work,PoW)
  2. 權益證明 (Proof of Stake,PoS)
  3. 權益證明+工作證明混合 (Proof of Stake + Proof of Work,PoS/PoW)
  4. 容錯共識 (Practical Byzantine Fault Tolerance,PBFT)

區塊鏈的共識機制是確保所有參與節點在添加新的交易或區塊時達成一致的方法。它的目標是解決分散式系統中的雙重花費和數據不一致性等問題。不同的區塊鏈平台使用不同的共識機制,以下是其中一些常見的共識機制:

工作證明 (Proof of Work,PoW):

  • PoW是比特幣等區塊鏈平台使用的共識機制。
  • 在PoW中,礦工需要解決一個複雜的數學問題(即為尋找nonce)。
  • 第一個成功解決問題的礦工有權添加新區塊到區塊鏈,並獲得獎勵。
  • PoW確保了網絡的安全性,但導致大量的能源浪費

舉個例子:

區塊鏈中 存在 A B C D 四個節點(礦工)
A、B、C、D 四者相互連線 (如圖)

(可以注意到區塊鏈中 任一節點不一定要與所有其他節點都連線)
像是 A 與 B 跟其他節點都有連線,但是 C 與 D 並非與其他點都連線

(P2P網路,僅需透過相互傳遞 最後 A、B、C、D 四個節點資訊都可以相同)

現在交易發生

  1. 上傳交易資訊(任一節點都可以)
  2. 節點內 廣播該筆資訊。(相互傳遞 使全網都知道消息)。
  3. A B C D 四點都會為此筆交易進行運算(驗證交易合法性與計算區塊)。
  4. A 最先算出所有資訊,將其資訊廣播出去 使全網都知道 A 計算完區塊。
  5. 其他節點去驗證 區塊是否正確。
  6. 發放獎勵給予 A 節點,並同時前進一個區塊。

會注意到基本上,B、C、D 在這過程中 也付出很計算資源進行計算。
但最後卻僅由 A 獲得獎賞。

在真實的區塊鏈中,節點可能是成千上萬,這足以想像浪費的資源有多少。

權益證明 (Proof of Stake,PoS):

  • PoS是一種節省能源的共識機制
  • 在PoS中,參與者需要抵押一定數量的幣,並且他們的權益決定了他們添加新區塊的權利。
  • PoS促使持幣者維護網絡的安全性,因為他們有更多的賭注,但不需要像PoW那樣的大量計算資源。
  • 缺點 容易出現資本集中的問題 (越多虛擬貨幣的礦工,越能成為區塊生成者) 節點間越發不平等。

舉個例子

如上述例子 A B C D 四個節點於區塊鏈網路中

現在計算區塊時的步驟轉為:

  1. 股東抵押幣
    要參與區塊生成,股東需要抵押一定數量的幣作為擔保。

  2. 選擇區塊生成者
    根據他們抵押的幣數量和時間長短,區塊鏈系統會選擇一個或多個股東作為區塊生成者。

  3. 區塊生成和驗證
    被選中的股東(區塊生成者)負責生成新的區塊,並將交易納入該區塊。
    其他股東(驗證者)將驗證新區塊的有效性。

  4. 獎勵分配
    如果新區塊被驗證並接受,區塊生成者和驗證者都有資格獲得獎勵。

  5. 抵押的釋放
    一旦股東完成了他們的區塊生成和驗證工作,他們的抵押將被釋放。

而且在 PoS 共識機制下,通常區塊的生成 不必計算 Nonce。
(例如可以使用 當前區塊含有前一區塊交易資訊 作為區塊鏈連接方式)
備註: 詳細計算方式 根據不同的區塊鏈而有所差異

但是假設 四個節點的資訊如下

A 節點 B 節點 C 節點 D 節點
擁有的虛擬貨幣數量 1000 ETH 1 ETH 1 ETH 1 ETH

從最開始 A 就參與生成,且每次都參與。

則不管其他三個節點何時加入,都是大概率 由 A 節點獲得生成的機會。
(因為 A 節點 虛擬貨幣最多 同時也投入最久)

雖然很大程度減少資源浪費
但是導致持有越多虛擬貨幣的節點越能成為區塊生有者。
窮的節點永遠無法獲得新的獎勵的機會

權益證明+工作證明混合 (Proof of Stake + Proof of Work,PoS/PoW):

  • 一些區塊鏈平台使用混合的共識機制,如PoS/PoW。
  • PoS用於選擇提議新區塊的節點,而PoW用於驗證和確認交易。
  • 即可以同時享有兩種的模式的優點。
  • 混合機制提供了額外的安全性,因為攻擊者需要同時掌握PoW和PoS的資源才能攻擊區塊鏈。

舉個例子

如上述例子 A B C D 四個節點於區塊鏈網路中

透過混合機制的共識後 區塊練處理順序變為

  1. 節點類型分配
    區塊鏈網絡中有兩種不同類型的節點(PoW與PoS)
    這兩者的數量和權重是根據網絡設計和共識協議來分配的。

  2. 交易驗證
    當一筆交易被提交到區塊鏈網絡時,它需要經過PoW和PoS節點的驗證。
    一旦驗證完該筆交易,交易進入等待區塊的池子。

  3. 區塊生成
    PoW礦工繼續競爭生成新區塊的權利,這是傳統PoW的部分。
    與此同時,PoS持幣者也有機會被選為下一個區塊的生成者。

  4. 區塊添加
    當一個PoW礦工或PoS持幣者成功生成一個新區塊時,這兩種類型的節點都可以獲得獎勵。

這裡會出現的問題,較多來自人性。

A 節點 B 節點 C 節點 D 節點
節點類型 PoS PoS PoW PoW

如果 幾乎每次區塊都是由PoS節點獲得生成機會
則 C 節點 與 D 節點 則會非常不開心,甚至在整個社群吵起來。

對於區塊鏈的長久運營未必是件好事!

容錯共識 (Practical Byzantine Fault Tolerance,PBFT):

  • PBFT是一種適用於私有區塊鏈的共識機制,它要求參與節點達成多數一致意見,以確保交易的正確性。

機制疑惑

看到這個可能會有些許疑惑,為甚麼要有 "私有區塊鏈"

私有區塊鏈就代表並不是所有人都可以參與區塊生成
(可能規定只有允許的節點能進入)

這樣資訊豈不就是無法很有效的分散在許多節點上嗎?

對的,沒錯。

雖然不具有所謂 "去中心化"
但是私有區塊鏈仍舊保有無法輕易竄改的特性

同時因為只有少數限定的節點在運作
也帶來了更好的效能加強資料控制權
採用容錯共識就能更有效的提升計算的效率

因此這項技術仍給予私人企業自己執行的機會。

結言

區塊鏈的共識機制是
確保網絡中數據的一致性和安全性的重要部分。

而不同的區塊鏈平台使用不同的共識機制,
以滿足其特定需求和目標。

共識機制的選擇影響著區塊鏈的性能、能源效率和安全性。

希望閱讀完這篇文章後 能夠理解

  1. 共識機制存在的意義
  2. 存在哪些常見共識機制
  3. 不同共識機制的差異性

下回預告

通過前面的講述 對此應該已能理解關於

  • 區塊鏈的模樣
  • 區塊鏈的計算與運行
  • 共識機制的作用

通過以上 區塊鏈已經能夠好好的運行了。

接下來我們要回歸本質
通過如此的運行模式與機制,那區塊鏈最初的夢想是甚麼?

下回 "區塊鏈基礎 : 區塊鏈的核心理念"


上一篇
區塊鏈基礎 : 區塊鏈 計算與運行
下一篇
區塊鏈基礎 : 區塊鏈的核心理念
系列文
從 區塊鏈 到 去中心化應用程式(DApp)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言